package cn.outsourcing.supermarket.vo.backstage;

import cn.outsourcing.supermarket.vo.hiolabs.HiolabsOrderGoodsVO;
import cn.outsourcing.supermarket.vo.hiolabs.HiolabsUserVO;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

/**
 * 订单列表信息
 *
 * @author gzkemays
 * @since 2021/11/2 19:46
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class BackstageOrdersInfoVO {
  private Integer id;

  private String orderSn;

  private Integer userId;

  /**
   * 101：未付款、102：已取消、103已取消(系统)、201：已付款、202：订单取消，退款中、203：已退款、301：已发货、302：已收货、303：已收货(系统)、401：已完成、801：拼团中,未付款、802：拼团中,已付款
   */
  private Integer orderStatus;

  /** 线下支付订单标志 */
  private Integer offlinePay;

  /** 0未发货，1已发货 */
  private Integer shippingStatus;

  private Integer printStatus;

  private Integer payStatus;

  private String consignee;

  private Integer country;

  private Integer province;

  private Integer city;

  private Integer district;

  private String address;

  private String printInfo;

  private String mobile;

  private String postscript;

  private String adminMemo;

  /** 免邮的商品的邮费，这个在退款时不能退给客户 */
  private BigDecimal shippingFee;

  private String payName;

  private String payId;

  /** 0没改价，不等于0改过价格，这里记录原始的价格 */
  private BigDecimal changePrice;

  /** 实际需要支付的金额 */
  private BigDecimal actualPrice;

  /** 订单总价 */
  private BigDecimal orderPrice;

  /** 商品总价 */
  private BigDecimal goodsPrice;

  private Object addTime;

  /** 付款时间 */
  private Object payTime;

  /** 发货时间 */
  private Object shippingTime;

  /** 确认时间 */
  private Object confirmTime;

  /** 成交时间，用户评论或自动好评时间 */
  private Object dealdoneTime;

  /** 配送费用 */
  private Integer freightPrice;

  /** 顺丰保价金额 */
  private BigDecimal expressValue;

  private String remark;

  /** 订单类型：0普通，1秒杀，2团购，3返现订单,7充值，8会员 */
  private Integer orderType;

  /** 订单删除标志 */
  private Integer isDelete;

  /** 优惠价格 */
  private BigDecimal promotionsPrice;

  @JsonProperty(value = "userInfo")
  HiolabsUserVO userInfo;

  @JsonProperty(value = "goodsList")
  List<HiolabsOrderGoodsVO> goodsList;

  String orderStatusText;

  @JsonProperty(value = "goodsCount")
  Integer goodsCount;

  String userName;
  String avatar;
}
